zz_

isPrime.js

thoward37@gmail.com/shirt[create-new-file-named-isprime-js] / isPrime.js @ c4d1dff4 Download
Ladder Summary
  • file Add an efficient prime checking function with comprehensive tests
/**
 * Determines if a given integer is a prime number.
 *
 * @param n - The number to check.
 * @returns true if n is a prime, false otherwise.
 */
export function isPrime(n) {
    // Reject non-number or non-integer inputs
    if (typeof n !== "number" || !Number.isInteger(n)) {
        return false;
    }
    // Negative numbers, 0 and 1 are not prime
    if (n <= 1) {
        return false;
    }
    // 2 and 3 are prime
    if (n <= 3) {
        return true;
    }
    // Eliminate multiples of 2 and 3 early
    if (n % 2 === 0 || n % 3 === 0) {
        return false;
    }
    // Check divisibility by numbers of the form 6k ± 1 up to sqrt(n)
    for (let i = 5; i * i <= n; i += 6) {
        if (n % i === 0 || n % (i + 2) === 0) {
            return false;
        }
    }
    return true;
}